From: Florian Müllner Date: Fri, 4 Feb 2022 16:42:27 +0000 (+0100) Subject: lookingGlass: Turn toolbar icons into actual buttons X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~530^2^2~117 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=a92f749daf3bacff7cfb2a0f5d5aa2eb241e9c9e;p=gnome-shell.git lookingGlass: Turn toolbar icons into actual buttons Yes, we can use reactive icons with a `button-press-event` handler, but really, there's a standard control for that kind of behavior ... Part-of: --- diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js index ed217a4db..acf4758cb 100644 --- a/js/ui/lookingGlass.js +++ b/js/ui/lookingGlass.js @@ -1264,11 +1264,15 @@ class LookingGlass extends St.BoxLayout { let toolbar = new St.BoxLayout({ name: 'Toolbar' }); this.add_actor(toolbar); - let inspectIcon = new St.Icon({ icon_name: 'find-location-symbolic', - icon_size: 24 }); - toolbar.add_actor(inspectIcon); - inspectIcon.reactive = true; - inspectIcon.connect('button-press-event', () => { + const inspectButton = new St.Button({ + style_class: 'lg-toolbar-button', + child: new St.Icon({ + icon_name: 'find-location-symbolic', + icon_size: 24, + }), + }); + toolbar.add_actor(inspectButton); + inspectButton.connect('clicked', () => { let inspector = new Inspector(this); inspector.connect('target', (i, target, stageX, stageY) => { this._pushResult('inspect(%d, %d)'.format(Math.round(stageX), Math.round(stageY)), target); @@ -1281,21 +1285,25 @@ class LookingGlass extends St.BoxLayout { return Clutter.EVENT_STOP; }); - let gcIcon = new St.Icon({ icon_name: 'user-trash-full-symbolic', - icon_size: 24 }); - toolbar.add_actor(gcIcon); - gcIcon.reactive = true; - gcIcon.connect('button-press-event', () => { - gcIcon.icon_name = 'user-trash-symbolic'; + const gcButton = new St.Button({ + style_class: 'lg-toolbar-button', + child: new St.Icon({ + icon_name: 'user-trash-full-symbolic', + icon_size: 24, + }), + }); + toolbar.add_actor(gcButton); + gcButton.connect('clicked', () => { + gcButton.child.icon_name = 'user-trash-symbolic'; System.gc(); this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 500, () => { - gcIcon.icon_name = 'user-trash-full-symbolic'; + gcButton.child.icon_name = 'user-trash-full-symbolic'; this._timeoutId = 0; return GLib.SOURCE_REMOVE; }); GLib.Source.set_name_by_id( this._timeoutId, - '[gnome-shell] gcIcon.icon_name = \'user-trash-full-symbolic\'' + '[gnome-shell] gcButton.child.icon_name = \'user-trash-full-symbolic\'' ); return Clutter.EVENT_PROPAGATE; });